The present invention relates to communication systems, such as the recording and reproduction of binary data in disk storage systems for digital computers. In particular, the present invention relates to a commuted read/write channel employing a multiple-rate channel encoder/decoder (ENDEC) which increases storage capacity by reducing or eliminating pad bits required in prior art configurations.
Disk storage system (e.g., magnetic and optical disk drives) are essentially communication systems wherein the storage medium, head and read/write electronics constitute the communication channel. User data are transmitted through a communication medium by recording the data to the disk during a write operation and sensing the recorded data during a read operation.
FIG. 1A illustrates the typical format of a magnetic disk storage medium comprising a plurality of concentric, radially spaced data tracks 2 partitioned into a number of data sectors 4. A typical format for a data sector 4 is shown in FIG. 1B as comprising a preamble 3 for acquiring the frequency and phase of the recorded data, a sync mark 5 for symbol synchronizing to the recorded data, channel encoded user data 7, and appended ECC redundancy symbols 9 for detecting and correcting errors in the user data. The disk may also include embedded servo sectors 6 which facilitate positioning a head with respect to the disk during write and read operations. In order to achieve a more constant linear bit density, the tracks are typically banded together to form zones and the data rate is increased from the inner to outer diameter zones. This is illustrated in FIG. 1A wherein the disk is partitioned into an inner zone 10 comprising seven data sectors per track and an outer zone 8 comprising fourteen data sectors per track. In practice, the disk is actually partitioned into several zones with the data rate increasing incrementally from the inner to outer diameter zones.
The user data are typically encoded in order to increase the effective signal-to-noise ratio (SNR) which facilitates higher linear recording densities leading to an increase in storage capacity. Two types of codes are typically employed: a channel code and an error correction code (ECC). A channel code typically increases the effective SNR by attenuating a noise source within the recording channel. For example, a run-length limited (RLL) channel code constrains the minimum spacing between consecutive medium transitions representing the recorded data which reduces intersymbol interference. An RLL channel code may also constrain the maximum spacing between consecutive medium transitions in order to reduce errors in bit synchronizing to the data. These two run-length constraints on the minimum and maximum spacing between medium transitions are typically referred to as (d,k) respectively.
A channel code is typically augmented by an ECC code, such as the well known Reed-Solomon ECC code, which increases the effective SNR by encoding the data according to a minimum Hamming distance which defines the correction power of the ECC code. When noise corrupts a transmitted (recorded) codeword, the received codeword can still be successfully decoded as long as the erroneous bits do not violate the minimum Hamming distance.
A typical prior art configuration for the channel and ECC encoders/decoders is illustrated in FIG. 2. The user data 12 received from the host are first encoded by an ECC encoder 14 which generates a number of ECC redundancy symbols 16 by dividing the user data represented as a data polynomial by a generator polynomial. The user data 12 are passed through a multiplexer 18 and encoded by a channel encoder 20, such as a rate 16/17 RLL encoder 20, and the encoded user data are written to the disk 22 by a write modulator 24. The ECC redundancy symbols 16 are then passed through the multiplexer 18, encoded by the channel encoder 20, and written to the disk 22 by the write modulator 24. During read back, a data detector 26 detects an estimated data sequence 28 from a read signal 30 emanating from a head (not shown) positioned over a selected track of the disk 22. The estimated data sequence 28 is decoded by a channel decoder 32, such as a 16/17 RLL decoder, which implements the inverse operation of the channel encoder 20. The channel decoded data 34 is then decoded by an ECC decoder 36 into user data 38 transmitted to the host.
The code rate (input-bits/output-bits) of the channel ENDEC shown in the prior art read/write channel of FIG. 2 is typically low in order to minimize the error propagation for the ECC code. For example, when using a rate 16/17 RLL ENDEC with a byte oriented ECC code, an error in RLL decoding 32 a first byte may propagate into a neighboring byte or bytes which must also be corrected by the ECC code. This error propagation problem increases relative to the number of user data bits encoded by the channel encoder, which directly affects the code rate of the channel ENDEC. Thus, the number of user data bits encoded is typically selected to be low in order to reduce error propagation which places an upper bound on the code rate. This is undesirable since a higher code rate allows more user data to be written to the disk.
The code rate limitation of the prior art read/write channel of FIG. 2 is overcome by xe2x80x9ccommutingxe2x80x9d the channel architecture such that the user data is first encoded by the channel encoder, and then encoded by the ECC encoder. This allows for a higher rate channel ENDEC since the error propagation problem is avoided by first ECC decoding the detected data during a read operation, and then passing the ECC corrected data through the channel decoder.
An example prior art commuted read/write channel is disclosed in the above referenced U.S. patent application entitled xe2x80x9cDISK STORAGE SYSTEM EMPLOYING ERROR DETECTION AND CORRECTION OF CHANNEL CODED DATA, INTERPOLATED TIMING RECOVERY, AND RETROACTIVE/SPLIT-SEGMENT SYMBOL SYNCHRONIZATION.xe2x80x9d The general configuration and operation of the commuted read/write channel disclosed in the aforementioned patent application is illustrated in FIG. 3. The user data 12 received from the host is first encoded by a high rate channel encoder 40, such as a high rate RLL encoder 40. The channel encoded data 42 passes through a multiplexer 44 and is written to the disk 22 by the write modulator 24. The channel encoded data 42 is simultaneously encoded by an ECC encoder 14 which generates the ECC redundancy symbols 16 over the encoded data. The ECC redundancy symbols 16 are then encoded by a low rate channel encoder 46, such as a low rate RLL encoder 46, so that the ECC redundancy symbols 16 satisfy the desired channel constraints when written to the disk 22. The channel encoded ECC redundancy symbols 48 are then passed through multiplexer 44 and written to the disk 22 by the write modulator 24.
During a read operation, the data detector 26 detects an estimated data sequence 28 from the read signal 30. The estimated data sequence 28 representing the user data is passed through a multiplexer 50 and input into the ECC decoder 36. The estimated data sequence 28 representing the encoded ECC redundancy symbols is then decoded by a low rate channel decoder 52, such as a low rate RLL decoder 52, which implements the inverse operation of the low rate channel encoder 46. The decoded ECC redundancy symbols 54 are then passed through multiplexer 50 and input into the ECC decoder 36 which detects and corrects errors in the estimated data sequence 28 representing the user data. The corrected user data sequence 56 is then decoded by a high rate channel decoder 58, such as a high rate RLL decoder 58, which implements the inverse operation of the high rate channel encoder 40. The decoded user data 38 is then transmitted to the host. The error propagation problem inherent in the prior art read/write channel of FIG. 2 is avoided since the estimated data sequence 28 is first corrected by the ECC decoder 36 and then decoded by the channel decoder 58.
Although the prior art commuted read/write channel of FIG. 3 is more efficient by allowing for a higher rate channel ENDEC for encoding/decoding the user data, an efficiency problem arises when the number of data bits to be encoded by the high rate channel encoder is not integer divisible by m where the code rate of the channel ENDEC is m/n. Consider, for example, a high rate channel encoder 40 having a code rate of 64/65. If the number of input bits 12 to be encoded is not integer divisible by 64, then the last part of the data sector must be padded to reach a 64-bit input block. For example, if there are 4128 bits of input data 12, then the last input block must be padded with
mod(4128/64)=32
pad bits (zero bits) in order to encode the last 64/65 output block 42. These encoded pad bits are then written to the disk 22 which is a waste of storage area.
There is, therefore, a need for a more efficient channel ENDEC in a commuted read/write channel for disk storage systems. In particular, there is a need for a channel ENDEC which reduces or eliminates the number of pad bits when encoding the last part of a data sector.
The present invention may be regarded as a commuted read/write channel for writing data to and reading data from a disk storage medium. A first channel encoder encodes a first j-k bits of a j-bit data block to generate first encoded data, and an ECC encoder encodes the first encoded data and a remaining k-bits of the data block to generate ECC redundancy symbols comprising a plurality of bits. A second channel encoder encodes the remaining k-bits of the data block and the ECC redundancy symbols to generate second encoded data. The first encoded data and the second encoded data are then output as channel data written to the disk storage medium.
The present invention may also be regarded as a method of encoding data in a commuted read/write channel for disk storage systems. The method comprises the steps of first channel encoding a first j-k bits of a j-bit data block to generate first encoded data; ECC encoding the first encoded data and a remaining k-bits of the data block to generate ECC redundancy symbols comprising a plurality of bits; second channel encoding the remaining k-bits of the data block and the ECC redundancy symbols to generate second encoded data; and outputting the first encoded data and the second encoded data as channel data written to a disk storage medium.